//#include  <iostream>
//#include  <fstream>
#include <iostream.h>
#include <fstream.h>
#include <cstring>
//using namespace std;

class phonebook {
  char name[80];
  char areacode[4];
  char prefix[4];
  char num[8];
public:
  phonebook() { };
  phonebook(char *n, char *a, char *p, char *nm)
  {
    strcpy(name, n);
    strcpy(areacode, a);
    strcpy(prefix, p);
    strcpy(num, nm);
  }
  friend ostream &operator<<(ostream &stream, phonebook o);
  friend istream &operator>>(istream &stream, phonebook &o);
};

// Display name and phone number.
ostream &operator<<(ostream &stream, phonebook o)
{
  stream << o.name << " ";
  stream << "(" << o.areacode << ") ";
  stream << o.prefix << "-";
  stream << o.num << "\n";
  return stream; // must return stream
}

// Input name and telephone number.
istream &operator>>(istream &stream, phonebook &o)
{
  cout << "Enter name: ";
  stream >> o.name;
  cout << "Enter area code: ";
  stream >> o.areacode;
  cout << "Enter prefix: ";
  stream >> o.prefix;
  cout << "Enter number: ";
  stream >> o.num;
  cout << "\n";
  return stream;
}

int main()
{
  phonebook a;
  char c;

  fstream pb("phone", ios::in | ios::out | ios::app);

  if(!pb) {
    cout << "Cannot open phone book file.\n";
    return 1;
  }

  for(;;) {
    do {
      cout << "1. Enter numbers\n";
      cout << "2. Display numbers\n";
      cout << "3. Quit\n";
      cout << "\nEnter a choice: ";
      cin >> c;
    } while(c<'1' || c>'3');

    switch(c) {
      case '1':
        cin >> a;
        cout << "Entry is: ";
        cout << a;  // show on screen
        pb << a;  // write to disk
        break;
      case '2':
        char ch;
        pb.seekg(0, ios::beg);
        while(!pb.eof()) {
          pb.get(ch);
          if(!pb.eof()) cout << ch;
        }
        pb.clear();  // reset eof
        cout << endl;
        break;
      case '3':
        pb.close();
        return 0;
    }
  }
}

/*

  Compiling...
file_c++.cpp
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(29) : error C2248: 'name' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(9) : see declaration of 'name'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(30) : error C2248: 'areacode' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(10) : see declaration of 'areacode'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(31) : error C2248: 'prefix' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(11) : see declaration of 'prefix'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(32) : error C2248: 'num' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(12) : see declaration of 'num'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(40) : error C2248: 'name' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(9) : see declaration of 'name'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(42) : error C2248: 'areacode' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(10) : see declaration of 'areacode'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(44) : error C2248: 'prefix' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(11) : see declaration of 'prefix'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(46) : error C2248: 'num' : cannot access private member declared in class 'phonebook'
        c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(12) : see declaration of 'num'
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(74) : error C2593: 'operator >>' is ambiguous
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(76) : error C2593: 'operator <<' is ambiguous
c:\documents and settings\dee\desktop\scenario\scen\file_c++.cpp(77) : error C2593: 'operator <<' is ambiguous
Error executing cl.exe.

file_c++.obj - 11 error(s), 0 warning(s)

*/